function formatDateTime(timestamp) {
    var date = new Date(timestamp);
    var y = date.getFullYear();
    var m = date.getMonth() + 1;
    m = m < 10 ? ('0' + m) : m;
    var d = date.getDate();
    d = d < 10 ? ('0' + d) : d;
    var h = date.getHours();
    h = h < 10 ? ('0' + h) : h;
    var minute = date.getMinutes();
    var second = date.getSeconds();
    minute = minute < 10 ? ('0' + minute) : minute;
    second = second < 10 ? ('0' + second) : second;
    return y + '-' + m + '-' + d;
};

function formatDate(timestamp) {
    Date.prototype.Format = function (fmt) { //author: meizz
        var o = {
            "M+": this.getMonth() + 1, //月份
            "d+": this.getDate(), //日
            "H+": this.getHours(), //小时
            "m+": this.getMinutes(), //分
            "s+": this.getSeconds(), //秒
            "q+": Math.floor((this.getMonth() + 3) / 3), //季度
            "S": this.getMilliseconds() //毫秒
        };
        if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
        for (var k in o)
            if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
        return fmt;
    }

    var msesInt = Number.parseInt(timestamp); // 毫秒字符串转换成数值
    var dt = new Date(msesInt); // 初始化Date对象
    var ndt = dt.Format("yyyy-MM-dd HH:mm:ss");
    return ndt
};


function formatCurrency(num) {
    if (num) {
        //将num中的$,去掉，将num变成一个纯粹的数据格式字符串
        num = num.toString().replace(/\$|\,/g, '');
        //如果num不是数字，则将num置0，并返回
        if ('' == num || isNaN(num)) {
            return 'Not a Number ! ';
        }
        //如果num是负数，则获取她的符号
        var sign = num.indexOf("-") > 0 ? '-' : '';
        //如果存在小数点，则获取数字的小数部分
        var cents = num.indexOf(".") > 0 ? num.substr(num.indexOf(".")) : '';
        cents = cents.length > 1 ? cents : '';//注意：这里如果是使用change方法不断的调用，小数是输入不了的
        //获取数字的整数数部分
        num = num.indexOf(".") > 0 ? num.substring(0, (num.indexOf("."))) : num;
        //如果没有小数点，整数部分不能以0开头
        if ('' == cents) {
            if (num.length > 1 && '0' == num.substr(0, 1)) {
                return 'Not a Number ! ';
            }
        }
        //如果有小数点，且整数的部分的长度大于1，则整数部分不能以0开头
        else {
            if (num.length > 1 && '0' == num.substr(0, 1)) {
                return 'Not a Number ! ';
            }
        }
        //针对整数部分进行格式化处理，这是此方法的核心，也是稍难理解的一个地方，逆向的来思考或者采用简单的事例来实现就容易多了
        /*
         也可以这样想象，现在有一串数字字符串在你面前，如果让你给他家千分位的逗号的话，你是怎么来思考和操作的?
         字符串长度为0/1/2/3时都不用添加
         字符串长度大于3的时候，从右往左数，有三位字符就加一个逗号，然后继续往前数，直到不到往前数少于三位字符为止
         */
        for (var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++) {
            num = num.substring(0, num.length - (4 * i + 3)) + ',' + num.substring(num.length - (4 * i + 3));
        }
        //将数据（符号、整数部分、小数部分）整体组合返回
        return (sign + num + "" + (cents.length > 3 ? cents.substring(0, 3) : cents));
        //return parseFloat((sign + num +  cents)).toFixed(2);
    }


}

function convertTime(time) {
    var t = time.slice(6, 19)
    var NewDtime = new Date(parseInt(t));
    return formatDateTime(NewDtime);
}

/* 倒计时 */
function CountDown(callback, initTimeSeconds, Selector) {

    if (Selector !== undefined) {
        $(Selector).text(initTimeSeconds);
    }
    if (initTimeSeconds === 0) {
        return callback();
    }
    initTimeSeconds -= 1;
    //每秒执行一次,showTime()
    setTimeout(function () {
        CountDown(callback, initTimeSeconds, Selector)
    }, 1000);
}


function SimplePOST(URL, PARAMTERS) {
    __openWindowForm__(null, URL, PARAMTERS, "_blank");
}

function __openWindowForm__(tip, URL, PARAMTERS, target) {
    if (tip === undefined || tip === null) tip = window;
    var _temp = tip.document.createElement("form");
    _temp.action = URL;
    _temp.target = target;
    _temp.method = "POST";
    _temp.name = "submitPost";
    _temp.style.display = "none";
    for (var item in PARAMTERS) {
        var opt = tip.document.createElement("textarea");
        opt.name = item;
        opt.value = PARAMTERS[item];
        _temp.appendChild(opt);
    }
    tip.document.body.appendChild(_temp);
    _temp.submit();
}
